home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / cocktail / front.lha / front / src / Scanner.md < prev    next >
Text File  |  1992-08-18  |  1KB  |  62 lines

  1. (* $Id: Scanner.md,v 2.6 1992/08/18 09:46:20 grosch rel $ *)
  2.  
  3. DEFINITION MODULE Scanner;
  4.  
  5. IMPORT Strings;
  6.  
  7. (* line 33 "input.rex" *)
  8.  
  9.  
  10. FROM StringMem    IMPORT tStringRef;
  11. FROM Idents    IMPORT tIdent;
  12. FROM Rules      IMPORT Expression;
  13. FROM Lists      IMPORT tList;
  14. FROM Positions    IMPORT tPosition;
  15.  
  16. TYPE
  17.    AttributeMode = (Keys, Comment, Number, Action, Symbol, Coding, PrioPart, RightSide, Empty);
  18.  
  19.    tScanAttribute=
  20.       RECORD
  21.      Position: tPosition;
  22.      CASE Mode: AttributeMode OF
  23.      | Comment: Comm    : tList;
  24.      | Number: Value    : CARDINAL;
  25.      | Action: Act    : tList;
  26.      | Symbol: Sym    : tIdent;
  27.      | Coding:
  28.          HasCoding    : BOOLEAN ;
  29.          CodNumbPos    : tPosition;
  30.          CodValue    : CARDINAL;
  31.      | PrioPart,
  32.        RightSide:
  33.          Expr:  Expression;
  34.          CASE HasPrio: BOOLEAN OF
  35.            TRUE:
  36.          PriSym    : tIdent;
  37.          PriSymPos    : tPosition;
  38.          END;
  39.      END;
  40.       END;
  41.  
  42. PROCEDURE ErrorAttribute (Token: INTEGER; VAR Attr: tScanAttribute);
  43.  
  44.  
  45. CONST EofToken    = 0;
  46.  
  47. VAR TokenLength    : INTEGER;
  48. VAR Attribute    : tScanAttribute;
  49. VAR ScanTabName    : ARRAY [0 .. 127] OF CHAR;
  50. VAR Exit    : PROC;
  51.  
  52. PROCEDURE BeginScanner    ;
  53. PROCEDURE BeginFile    (FileName: ARRAY OF CHAR);
  54. PROCEDURE GetToken    (): INTEGER;
  55. PROCEDURE GetWord    (VAR Word: Strings.tString);
  56. PROCEDURE GetLower    (VAR Word: Strings.tString);
  57. PROCEDURE GetUpper    (VAR Word: Strings.tString);
  58. PROCEDURE CloseFile    ;
  59. PROCEDURE CloseScanner    ;
  60.  
  61. END Scanner.
  62.